listbox: set selected_row before emitting signal
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>
Tue, 1 Jan 2019 23:14:17 +0000 (01:14 +0200)
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>
Fri, 11 Jan 2019 11:19:28 +0000 (13:19 +0200)
Signal emittion was added in 6f857f87dcd9 commit and it seems that
this is only place where selected_row is set after emitting signal.

Because of this gtk_list_box_get_selected_row currently returns NULL
as selected row if selection mode is set to GTK_SELECTION_BROWSE.

gtk/gtklistbox.c

index dc470ebce76dc304cd2aeb4b97a40f32b49caba8..943b1d9a1644bcdfbe4609bd87e6dbac86d64596 100644 (file)
@@ -1645,8 +1645,8 @@ gtk_list_box_update_selection_full (GtkListBox    *box,
     {
       gtk_list_box_unselect_all_internal (box);
       gtk_list_box_row_set_selected (row, TRUE);
-      g_signal_emit (box, signals[ROW_SELECTED], 0, row);
       priv->selected_row = row;
+      g_signal_emit (box, signals[ROW_SELECTED], 0, row);
     }
   else if (priv->selection_mode == GTK_SELECTION_SINGLE)
     {